{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "0679f620",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.datasets import make_classification\n",
    "import matplotlib.pyplot as plt\n",
    "from collections import Counter #计数器"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7d1c6d0d",
   "metadata": {},
   "source": [
    "# 1.数据准备：模拟创建不均衡样本"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "bba19b52",
   "metadata": {},
   "outputs": [],
   "source": [
    "x,y=make_classification(n_samples=5000, # 5000个样本\n",
    "                       n_features=2,    # 特征个数，n_features = n_informative + n_redundant + n_repeated\n",
    "                       n_informative=2, # 多信息特征个数\n",
    "                       n_redundant=0,   # 冗余信息，informative的随机线性组合\n",
    "                       n_repeated=0,    # 重复信息，随机提取n_informative\n",
    "                       n_classes=3,     # 分类类别\n",
    "                       n_clusters_per_class=1,   # 某一个类别是由几个cluster构成的\n",
    "                       weights=[0.01,0.05,0.94], # 列表类别，权重比\n",
    "                       random_state=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "47ff3ec9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([[ 8.62420206e-01, -9.63476905e-01],\n",
       "        [-1.38080465e-03, -2.66979396e+00],\n",
       "        [ 1.40804486e+00, -5.32895046e-01],\n",
       "        ...,\n",
       "        [ 1.09447133e+00, -6.99569620e-01],\n",
       "        [ 1.60312887e+00, -8.26180435e-01],\n",
       "        [ 1.99589648e+00,  5.42836944e-01]]),\n",
       " (5000, 2))"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x,x.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "dbff301b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([2, 2, 2, ..., 2, 2, 2]), (5000,))"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y,y.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "a05bee91",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Counter({2: 4674, 1: 262, 0: 64})"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Counter(y) # 统计y,2有4674个，1有262个，0有64个"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "6424619b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(x[:,0], # X轴 所有行第0列的特征\n",
    "            x[:,1], # Y轴 所欲行第1列的特征\n",
    "            c=y # 基于y做分布类别)\n",
    "           )\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "052daf1b",
   "metadata": {},
   "source": [
    "## 处理思路：\n",
    "### 1.增加欠采样样本数\n",
    "### 2.减少过采样样本数"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "197d2eb6",
   "metadata": {},
   "source": [
    "## 缺点：造成模型训练复杂度增大，容易造成模型过拟合"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "56f04981",
   "metadata": {},
   "source": [
    "# 2.数据处理：过采样"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "bd539dc7",
   "metadata": {
    "is_executing": true
   },
   "outputs": [],
   "source": [
    "# 因为sciket-learn版本问题，1.3.2会报错，要降到1.2.2才行\n",
    "from imblearn.over_sampling import RandomOverSampler\n",
    "\n",
    "ros = RandomOverSampler(random_state=0)\n",
    "x_resampled,y_resampled = ros.fit_resample(x,y)\n",
    "\n",
    "Counter(y_resampled)\n",
    "# 结果数据平衡了 Counter({2: 4674, 1: 4674, 0: 4674})\n",
    "# 缺点：造成模型训练复杂度增大，容易造成模型过拟合，因此出现了新的算法解决这问题，SMOTE算法"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "437c8c3a",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 画图\n",
    "plt.scatter(x_resampled[:,0],x[:,1],c=y_resampled)\n",
    "plt.show()\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e10af409",
   "metadata": {},
   "source": [
    "### smote算法原理\n",
    "#### 1.先随机选定一个少数样本x\n",
    "#### 2.找出这类样本的K个临近点样本\n",
    "#### 3.随机从这k个样本中选一个\n",
    "#### 4.样本x与这kx样本连线，在线上随机找一点，这点就是人工合成的样本"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ba050c7e",
   "metadata": {},
   "outputs": [],
   "source": [
    "from imblearn.over_sampling import SMOTE\n",
    "x_resampled,y_resample=SMOTE().fit_resample(x,y)\n",
    "\n",
    "Counter(y_resample)\n",
    "# 结果数据平衡了 Counter({2: 4674, 1: 4674, 0: 4674})\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6137a081",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 画图 图中的原本那些少数样本多了，像是连线一样（SMOTE算法）\n",
    "plt.scatter(x_resampled[:,0],x[:,1],c=y_resampled)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "76b33554",
   "metadata": {},
   "source": [
    "# 3.数据处理：欠采样"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "73ffa259",
   "metadata": {},
   "source": [
    "### 去除一些多数种类的样本"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "83d9b7f0",
   "metadata": {},
   "outputs": [],
   "source": [
    "from imblearn.under_sampling import RandomUnderSampler\n",
    "rus = RandomUnderSampler(random_state=0)\n",
    "x_resampled,y_resampled= rus.fit_resample(x,y)\n",
    "\n",
    "Counter(y_resampled)\n",
    "# 结果数据平衡了 Counter({2: 64, 1: 64, 0: 64})\n",
    "# 缺点：随机欠采样方法通过改变多数类样本比例以达到修改样本分布的目的，\n",
    "#       从而使样本分布较为均衡但是这也存在一些问题。对于随机欠采样，\n",
    "#       由于采样的样本集合要少于原来的样本集合，因此会造成一些信息缺\n",
    "#       失，即将多数类样本删除有可能会导致分类器丢失有关多数类的重要信息。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "00578b12",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 画图 \n",
    "plt.scatter(x_resampled[:,0],x[:,1],c=y_resampled)\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
